#ifndef IBUFFERBASE_H
#define IBUFFERBASE_H

#include "../Config/Export.h"
#include "GL/glew.h"

namespace epix {

struct VertexDeclaration
{
    GLenum usage;
    GLint first;
    GLsizei size_b;
};

class SHARED IBufferBase
{
    public:

        IBufferBase() {}
        virtual ~IBufferBase() {}

        virtual GLsizei getSize() const = 0;
        virtual GLenum getType() const = 0;
        virtual GLenum getMode() const = 0;
        virtual GLuint getBuffer() const = 0;
        virtual int getNbDeclarations() const = 0;
        virtual const VertexDeclaration &getDeclaration(int nb) const = 0;

};

}

#endif
